﻿// ***********************************************************************
// Assembly         : AccesoDatos
// Author           : Diego
// Created          : 03-02-2014
//
// Last Modified By : Diego
// Last Modified On : 03-02-2014
// ***********************************************************************
// <copyright file="AD_Material_No_Estructural.cs" company="">
//     Copyright (c) . All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// The ClasesAccesoDatos namespace.
/// </summary>
namespace AccesoDatos.Modulos.ClasesAccesoDatos
{
    /// <summary>
    /// Class AD_Material_No_Estructural.
    /// </summary>
    public class AD_Material_No_Estructural
    {
        //crear material no estructutral
        /// <summary>
        /// Crs the e_ material_ no_ estructural.
        /// </summary>
        /// <param name="comando">The comando.</param>
        /// <param name="obj">The object.</param>
        public void CRE_Material_No_Estructural(SqlCommand comando,MOD_Material_No_Estructural obj)
        {
            try
            {
                string sp = "SP_CRE_Material_No_Estructural";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();


                comando.Parameters.Add(new SqlParameter("@MATNOEST_DESCRIPCION", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MATNOEST_NOMBRE", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MATNOEST_CODMEDIDA", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@MATNOEST_PRECIOUNI", SqlDbType.Int));

                comando.Parameters[0].Value = obj.MATNOEST_descripcion;
                comando.Parameters[1].Value = obj.MATNOEST_nombre;
                comando.Parameters[2].Value = obj.MATNOEST_codmedida;
                comando.Parameters[3].Value = obj.MATNOEST_preciouni;

                comando.ExecuteNonQuery();

            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        //eliminar Material_No_Estructural
        /// <summary>
        /// Des the l_ material_ no_ estructural.
        /// </summary>
        /// <param name="comando">The comando.</param>
        /// <param name="codigo">The codigo.</param>
        public void DEL_Material_No_Estructural(SqlCommand comando, int codigo)
        {
            try
            {
                string sp = "SP_DEL_Material_No_Estructural";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();


                comando.Parameters.Add(new SqlParameter("@MATNOEST_CODMATNOEST", SqlDbType.Int));

                comando.Parameters[0].Value = codigo;

                comando.ExecuteNonQuery();


            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        //actualiza Material_No_Estructural
        /// <summary>
        /// Ups the d_ material_ no_ estructural.
        /// </summary>
        /// <param name="comando">The comando.</param>
        /// <param name="obj">The object.</param>
        public void UPD_Material_No_Estructural(SqlCommand comando, MOD_Material_No_Estructural obj)
        {
            try
            {
                string sp = "SP_UPD_Material_No_Estructural";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@MATNOEST_CODMATNOEST", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@MATNOEST_DESCRIPCION", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MATNOEST_NOMBRE", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@MATNOEST_CODMEDIDA", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@MATNOEST_PRECIOUNI", SqlDbType.Int));

                comando.Parameters[0].Value = obj.MATNOEST_codmatnoest;
                comando.Parameters[1].Value = obj.MATNOEST_descripcion;
                comando.Parameters[2].Value = obj.MATNOEST_nombre;
                comando.Parameters[3].Value = obj.MATNOEST_codmedida;
                comando.Parameters[4].Value = obj.MATNOEST_preciouni;

                comando.ExecuteNonQuery();

            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        //listado material no estructural en el grid
        /// <summary>
        /// Ses the l_ grid_ material_ no_ estructural.
        /// </summary>
        /// <param name="comando">The comando.</param>
        /// <returns>List{MOD_Material_No_Estructural}.</returns>
        public List<MOD_Material_No_Estructural> SEL_Grid_Material_No_Estructural(SqlCommand comando)
        {
            try
            {
                string sp = "SP_SEL_Grid_Material_No_Estructural";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                List<MOD_Material_No_Estructural> lista = new List<MOD_Material_No_Estructural>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    MOD_Material_No_Estructural obj = new MOD_Material_No_Estructural();
                    obj.MATNOEST_codmatnoest = Convert.ToInt32(dt.Rows[i]["MATNOEST_CODMATNOEST"]);
                    obj.MATNOEST_nombre = dt.Rows[i]["MATNOEST_NOMBRE"].ToString();
                    obj.MATNOEST_descripcion = dt.Rows[i]["MATNOEST_DESCRIPCION"].ToString();
                    obj.MATNOEST_uninombre = dt.Rows[i]["UNI_NOMBRE"].ToString();
                    obj.MATNOEST_preciouni =Convert.ToDecimal( dt.Rows[i]["MATNOEST_PRECIOUNI"]);
                    


                    lista.Add(obj);
                }

                return lista;

            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        //trae info de Material No Estructual para editar
        /// <summary>
        /// Ses the l_ material_ no_ estructural by identifier.
        /// </summary>
        /// <param name="comando">The comando.</param>
        /// <param name="MATNOEST_CODMATNOEST">The matnoes t_ codmatnoest.</param>
        /// <returns>MOD_Material_No_Estructural.</returns>
        public MOD_Material_No_Estructural SEL_Material_No_EstructuralByID(SqlCommand comando, int MATNOEST_CODMATNOEST)
        {
            try
            {
                string sp = "SP_SEL_Material_No_EstructuralByID";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@MATNOEST_CODTMATNOEST", SqlDbType.Int));


                comando.Parameters[0].Value = MATNOEST_CODMATNOEST;


                IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                MOD_Material_No_Estructural obj = new MOD_Material_No_Estructural();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    obj.MATNOEST_codmatnoest = Convert.ToInt32(dt.Rows[i]["MATNOEST_CODMATNOEST"]);
                    obj.MATNOEST_nombre = dt.Rows[i]["MATNOEST_NOMBRE"].ToString();
                    obj.MATNOEST_descripcion = dt.Rows[i]["MATNOEST_DESCRIPCION"].ToString();
                    obj.MATNOEST_codmedida = Convert.ToInt32(dt.Rows[i]["MATNOEST_CODMEDIDA"]);
                    obj.MATNOEST_preciouni = Convert.ToDecimal(dt.Rows[i]["MATNOEST_PRECIOUNI"]);
                }

                return obj;


            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        //selecciona material no estructural por nombre
        /// <summary>
        /// Ses the l_ material_ no_ estructural by nombre.
        /// </summary>
        /// <param name="comando">The comando.</param>
        /// <param name="MATNOEST_NOMBRE">The matnoes t_ nombre.</param>
        /// <returns>System.Int32.</returns>
        public int SEL_Material_No_EstructuralByNombre(SqlCommand comando, string MATNOEST_NOMBRE)
        {
            try
            {
                string sp = "SP_SEL_Material_No_EstructuralByNombre";
                int cant_tipcli = 0;
                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@MATNOEST_NOMBRE", SqlDbType.VarChar));


                comando.Parameters[0].Value = MATNOEST_NOMBRE;


                IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                MOD_Material_No_Estructural obj = new MOD_Material_No_Estructural();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    cant_tipcli = Convert.ToInt32(dt.Rows[i]["MATERIAL_NO_ESTRUCTURAL_CANT"]);


                }

                return cant_tipcli;


            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

    }
}